package com.rybbaby.tss.front.tssStudent.entity;

import com.rybbaby.tss.platform.sysAdminUser.entity.SysAdminUser;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;

/**
 * 会员表(去掉了 type字段)
 * 杨然
 * 2017年12月1日 09:48:32
 * */
@Entity
@Table(name = "tss_student")
@DynamicUpdate(true)
@DynamicInsert(true)
public class TssStudentExport {

    private static final long serialVersionUID = 20656070622809L;

    /** 主键 **/
    private java.lang.String id;

    /** 客户姓名 **/
    private java.lang.String name;

    /** 昵称 **/
    private java.lang.String nickName;

    /** 性别 **/
    private java.lang.Integer sex;

    /*会员年龄*/
    private Double age;

    /** 出生日期 **/
    private java.util.Date birthdayDate;

    /** 联系电话 **/
    private java.lang.String contactPhone;

    /** 学员渠道id **/
    private java.lang.Integer channelSource;

    /** 需要程度 **/
    private java.lang.Integer demanDegree;

    /** 微信号 **/
    private java.lang.String weiChat;

    /** 学员新增方式 **/
    private java.lang.String addressProvince;

    /** 所属城市 **/
    private java.lang.String addressCity;

    /** 所属城区 **/
    private java.lang.String addressRegion;

    /** 学员状态：0活跃1历史 **/
    private java.lang.String familyAddress;

    /** 备注 **/
    private java.lang.String remark;

    /** 名单状态 **/
    private java.lang.Integer listStatus;

    /** 客户状态 **/
    private java.lang.Integer stuStatus;

    /** 当前操作者Id **/
    private String  adminUserId;

    /** 是否已转会员 **/
    private java.lang.Boolean isMember;

    /** 学员唯一编码 **/
    private java.sql.Timestamp createTime;

    /** APP中孩子ID **/
    private java.sql.Timestamp updateTime;

    /** 是否转介绍 **/
    private java.lang.Boolean isTurnIntroduce;

    /** 是否完成调查问卷结果 **/
    private java.lang.Boolean isFinishQuestionnaire;

    /** 是否参数过早教课程 **/
    private java.lang.Boolean isJoinEarlyEducationCourse;

    /** 客户评估 **/
    private java.lang.String clientAssess;

    /** 入园方式 **/
    private java.lang.String joinSchoolWay;

    /** 选择机构元素 **/
    private java.lang.String organizationElement;

    /** 关注潜能开发 **/
    private java.lang.String potencyExploit;

    /** 感兴趣的课程 **/
    private java.lang.String interstedCourse;

    /** 性格 **/
    private java.lang.String characters;

    /** 来源其他输入备注 **/
    private java.lang.String channelRemark;

    /** 感兴趣的课程其他用户输入备注 **/
    private java.lang.String interstedCourseRemark;

    /** 版本 **/
    private java.lang.Integer version;


    /** 会员编号 **/
    private String number;

    /** 员工ID **/
    private String empAdminUserId;

    /** 员工信息 **/
    private SysAdminUser empSysAdminUser;

    /** 用户信息 **/
    private SysAdminUser sysAdminUser;

    /**
     * 方法: 取得主键
     *
     * @return java.lang.String 主键
     */
    @Id
    @GeneratedValue(generator = "tss_studentIDGenerator" , strategy = GenerationType.AUTO)
    @GenericGenerator(name = "tss_studentIDGenerator" , strategy = "uuid")
    @Column(name = "id", nullable= false, length = 32)
    public java.lang.String getId() {
        return this.id;
    }

    /**
     * 方法: 设置主键
     *
     * @param id 主键
     */
    public void setId(java.lang.String id) {
        this.id = id;
    }

    /**
     * 方法: 取得客户姓名
     *
     * @return java.lang.String 客户姓名
     */
    @Column(name = "name", nullable= true, length = 12)
    public java.lang.String getName() {
        return this.name;
    }

    /**
     * 方法: 设置客户姓名
     *
     * @param name 客户姓名
     */
    public void setName(java.lang.String name) {
        this.name = name;
    }

    /**
     * 方法: 取得昵称
     *
     * @return java.lang.String 昵称
     */
    @Column(name = "nickName", nullable= true, length = 50)
    public java.lang.String getNickName() {
        return this.nickName;
    }

    /**
     * 方法: 设置昵称
     *
     * @param nickName 昵称
     */
    public void setNickName(java.lang.String nickName) {
        this.nickName = nickName;
    }

    /**
     * 方法: 取得性别
     *
     * @return java.lang.Integer 性别
     */
    @Column(name = "sex", nullable= true, length = 11)
    public java.lang.Integer getSex() {
        return this.sex;
    }

    /**
     * 方法: 设置性别
     *
     * @param sex 性别
     */
    public void setSex(java.lang.Integer sex) {
        this.sex = sex;
    }

    /**
     * 方法: 取得出生日期
     *
     * @return java.util.Date 出生日期
     */
    @Column(name = "birthdayDate", nullable= true, length = 10)
    public java.util.Date getBirthdayDate() {
        return this.birthdayDate;
    }

    /**
     * 方法: 设置出生日期
     *
     * @param birthdayDate 出生日期
     */
    public void setBirthdayDate(java.util.Date birthdayDate) {
        this.birthdayDate = birthdayDate;
    }

    /**
     * 方法: 取得联系电话
     *
     * @return java.lang.String 联系电话
     */
    @Column(name = "contactPhone", nullable= true, length = 11)
    public java.lang.String getContactPhone() {
        return this.contactPhone;
    }

    /**
     * 方法: 设置联系电话
     *
     * @param contactPhone 联系电话
     */
    public void setContactPhone(java.lang.String contactPhone) {
        this.contactPhone = contactPhone;
    }

    /**
     * 方法: 取得学员渠道id
     *
     * @return java.lang.Integer 学员渠道id
     */
    @Column(name = "channelSource", nullable= true, length = 11)
    public java.lang.Integer getChannelSource() {
        return this.channelSource;
    }

    /**
     * 方法: 设置学员渠道id
     *
     * @param channelSource 学员渠道id
     */
    public void setChannelSource(java.lang.Integer channelSource) {
        this.channelSource = channelSource;
    }

    /**
     * 方法: 取得需要程度
     *
     * @return java.lang.Integer 需要程度
     */
    @Column(name = "demanDegree", nullable= true, length = 11)
    public java.lang.Integer getDemanDegree() {
        return this.demanDegree;
    }

    /**
     * 方法: 设置需要程度
     *
     * @param demanDegree 需要程度
     */
    public void setDemanDegree(java.lang.Integer demanDegree) {
        this.demanDegree = demanDegree;
    }

    /**
     * 方法: 取得微信号
     *
     * @return java.lang.String 微信号
     */
    @Column(name = "weiChat", nullable= true, length = 20)
    public java.lang.String getWeiChat() {
        return this.weiChat;
    }

    /**
     * 方法: 设置微信号
     *
     * @param weiChat 微信号
     */
    public void setWeiChat(java.lang.String weiChat) {
        this.weiChat = weiChat;
    }

    /**
     * 方法: 取得学员新增方式
     *
     * @return java.lang.String 学员新增方式
     */
    @Column(name = "addressProvince", nullable= true, length = 20)
    public java.lang.String getAddressProvince() {
        return this.addressProvince;
    }

    /**
     * 方法: 设置学员新增方式
     *
     * @param addressProvince 学员新增方式
     */
    public void setAddressProvince(java.lang.String addressProvince) {
        this.addressProvince = addressProvince;
    }

    /**
     * 方法: 取得所属城市
     *
     * @return java.lang.String 所属城市
     */
    @Column(name = "addressCity", nullable= true, length = 20)
    public java.lang.String getAddressCity() {
        return this.addressCity;
    }

    /**
     * 方法: 设置所属城市
     *
     * @param addressCity 所属城市
     */
    public void setAddressCity(java.lang.String addressCity) {
        this.addressCity = addressCity;
    }

    /**
     * 方法: 取得所属城区
     *
     * @return java.lang.String 所属城区
     */
    @Column(name = "addressRegion", nullable= true, length = 20)
    public java.lang.String getAddressRegion() {
        return this.addressRegion;
    }

    /**
     * 方法: 设置所属城区
     *
     * @param addressRegion 所属城区
     */
    public void setAddressRegion(java.lang.String addressRegion) {
        this.addressRegion = addressRegion;
    }

    /**
     * 方法: 取得学员状态：0活跃1历史
     *
     * @return java.lang.String 学员状态：0活跃1历史
     */
    @Column(name = "familyAddress", nullable= true, length = 50)
    public java.lang.String getFamilyAddress() {
        return this.familyAddress;
    }

    /**
     * 方法: 设置学员状态：0活跃1历史
     *
     * @param familyAddress 学员状态：0活跃1历史
     */
    public void setFamilyAddress(java.lang.String familyAddress) {
        this.familyAddress = familyAddress;
    }

    /**
     * 方法: 取得备注
     *
     * @return java.lang.String 备注
     */
    @Column(name = "remark", nullable= true, length = 50)
    public java.lang.String getRemark() {
        return this.remark;
    }

    /**
     * 方法: 设置备注
     *
     * @param remark 备注
     */
    public void setRemark(java.lang.String remark) {
        this.remark = remark;
    }

    /**
     * 方法: 取得名单状态
     *
     * @return java.lang.Integer 名单状态
     */
    @Column(name = "listStatus", nullable= true, length = 11)
    public java.lang.Integer getListStatus() {
        return this.listStatus;
    }

    /**
     * 方法: 设置名单状态
     *
     * @param listStatus 名单状态
     */
    public void setListStatus(java.lang.Integer listStatus) {
        this.listStatus = listStatus;
    }
    /**
     * 方法: 取得客户状态
     *
     * @return java.lang.Integer 客户状态
     */
    @Column(name = "stuStatus", nullable= true, length = 11)
    public Integer getStuStatus() {
        return stuStatus;
    }
    /**
     * 方法: 设置客户状态
     *
     * @param stuStatus 客户状态
     */
    public void setStuStatus(Integer stuStatus) {
        this.stuStatus = stuStatus;
    }

    /**
     * 方法: 取得当前操作者Id
     *
     * @return java.lang.Integer 当前操作者Id
     */
    @Column(name = "adminUserId", nullable= true, length = 11)
    public java.lang.String getAdminUserId() {
        return this.adminUserId;
    }

    /**
     * 方法: 设置当前操作者Id
     *
     * @param adminUserId 当前操作者Id
     */
    public void setAdminUserId(java.lang.String adminUserId) {
        this.adminUserId = adminUserId;
    }

    /**
     * 方法: 取得是否已转会员
     *
     * @return java.lang.Boolean 是否已转会员
     */
    @Column(name = "isMember", nullable= true, length = 1)
    public java.lang.Boolean getIsMember() {
        return isMember;
    }

    /**
     * 方法: 设置是否已转会员
     *
     * @param isMember 是否已转会员
     */
    public void setIsMember(java.lang.Boolean isMember) {
        this.isMember = isMember;
    }

    /**
     * 创建时间
     * @return
     */
    @Column(name = "createTime", nullable= true, length = 19)
    public java.sql.Timestamp getCreateTime() {
        return this.createTime;
    }

    /**
     * 创建时间
     * @param createTime
     */
    public void setCreateTime(java.sql.Timestamp createTime) {
        this.createTime = createTime;
    }

    /**
     * 方法: 取得APP中孩子ID
     *
     * @return java.sql.Timestamp APP中孩子ID
     */
    @Column(name = "updateTime", nullable= true, length = 19)
    public java.sql.Timestamp getUpdateTime() {
        return this.updateTime;
    }

    /**
     * 方法: 设置修改时间
     *
     * @param updateTime 修改时间
     */
    public void setUpdateTime(java.sql.Timestamp updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 方法: 取得版本
     *
     * @return java.lang.Integer
     */
    @Version
    @Column(name = "version", nullable= true, length = 11)
    public java.lang.Integer getVersion() {
        return this.version;
    }

    /**
     * 方法: 设置版本
     *
     * @param version
     */
    public void setVersion(java.lang.Integer version) {
        this.version = version;
    }


    /**
     * 所属顾问
     * @return
     */
    @Column(name = "empAdminUserId", nullable= true, length = 32)
    public String getEmpAdminUserId() {
        return empAdminUserId;
    }

    public void setEmpAdminUserId(String empAdminUserId) {
        this.empAdminUserId = empAdminUserId;
    }

    /**
     * 获取员工信息
     * @return
     */
    @JoinColumn(name = "empSysAdminUser" , insertable = false , updatable = false)
    @ManyToOne(fetch = FetchType.LAZY , targetEntity = SysAdminUser.class)
    public SysAdminUser getEmpSysAdminUser() {
        return empSysAdminUser;
    }

    public void setEmpSysAdminUser(SysAdminUser empSysAdminUser) {
        this.empSysAdminUser = empSysAdminUser;
    }

    /**
     * 获取用户信息
     * @return
     */
    @JoinColumn(name = "adminUserId" , insertable = false , updatable = false)
    @ManyToOne(fetch = FetchType.LAZY , targetEntity = SysAdminUser.class)
    public SysAdminUser getSysAdminUser() {
        return sysAdminUser;
    }

    public void setSysAdminUser(SysAdminUser sysAdminUser) {
        this.sysAdminUser = sysAdminUser;
    }

    /**
     * 会员编号
     * @return
     */
    @Column(name = "number", nullable= true, length = 100)
    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    @Column(name = "age", nullable= true, length = 22)
    public Double getAge() {
        return age;
    }

    public void setAge(Double age) {
        this.age = age;
    }

    @Column(name = "isTurnIntroduce", nullable= true, length = 1)
    public Boolean getIsTurnIntroduce() {
        return isTurnIntroduce;
    }

    public void setIsTurnIntroduce(Boolean isTurnIntroduce) {
        this.isTurnIntroduce = isTurnIntroduce;
    }
    @Column(name = "isFinishQuestionnaire", nullable= true, length = 1)
    public Boolean getIsFinishQuestionnaire() {
        return isFinishQuestionnaire;
    }

    public void setIsFinishQuestionnaire(Boolean isFinishQuestionnaire) {
        this.isFinishQuestionnaire = isFinishQuestionnaire;
    }
    @Column(name = "isJoinEarlyEducationCourse", nullable= true, length = 1)
    public Boolean getIsJoinEarlyEducationCourse() {
        return isJoinEarlyEducationCourse;
    }

    public void setIsJoinEarlyEducationCourse(Boolean isJoinEarlyEducationCourse) {
        this.isJoinEarlyEducationCourse = isJoinEarlyEducationCourse;
    }
    @Column(name = "clientAssess", nullable= true, length = 50)
    public String getClientAssess() {
        return clientAssess;
    }

    public void setClientAssess(String clientAssess) {
        this.clientAssess = clientAssess;
    }
    @Column(name = "joinSchoolWay", nullable= true, length = 50)
    public String getJoinSchoolWay() {
        return joinSchoolWay;
    }

    public void setJoinSchoolWay(String joinSchoolWay) {
        this.joinSchoolWay = joinSchoolWay;
    }
    @Column(name = "organizationElement", nullable= true, length = 50)
    public String getOrganizationElement() {
        return organizationElement;
    }

    public void setOrganizationElement(String organizationElement) {
        this.organizationElement = organizationElement;
    }
    @Column(name = "potencyExploit", nullable= true, length = 50)
    public String getPotencyExploit() {
        return potencyExploit;
    }

    public void setPotencyExploit(String potencyExploit) {
        this.potencyExploit = potencyExploit;
    }
    @Column(name = "interstedCourse", nullable= true, length = 50)
    public String getInterstedCourse() {
        return interstedCourse;
    }

    public void setInterstedCourse(String interstedCourse) {
        this.interstedCourse = interstedCourse;
    }
    @Column(name = "characters", nullable= true, length = 100)
    public String getCharacters() {
        return characters;
    }

    public void setCharacters(String characters) {
        this.characters = characters;
    }

    @Column(name = "channelRemark", nullable= true, length = 100)
    public String getChannelRemark() {
        return channelRemark;
    }

    public void setChannelRemark(String channelRemark) {
        this.channelRemark = channelRemark;
    }

    @Column(name = "interstedCourseRemark", nullable= true, length = 100)
    public String getInterstedCourseRemark() {
        return interstedCourseRemark;
    }

    public void setInterstedCourseRemark(String interstedCourseRemark) {
        this.interstedCourseRemark = interstedCourseRemark;
    }

}
